package frsf.cidisi.exercise.arqueologic.situationCalculus;

import frsf.cidisi.faia.state.EnvironmentState;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Vector;

import Clases.Mundo;

public class ArqueologicEnvironmentState extends EnvironmentState {

	
	//TODO: Setup Variables
	private Mundo mundo;
    private String posicionArqueologo;
    private String inicio;
    private String destino;
    private int[][] distMinimas;
	
	
    public ArqueologicEnvironmentState() {
        
		//TODO: Complete Method

        this.initState();
    }

    @Override
    public void initState() {
    	posicionArqueologo = "Aragaey";
    	inicio = "Aragaey";
    	destino = "Bresol";
        mundo = new Mundo();
        this.distMinimas = mundo.distanciasMinimas();
    }


    @Override
    public String toString() {
        String str = "";
	    
	    //TODO: Complete Method
	    
        return str;
    }
    
    //TODO: Complete this section with agent-specific methods
    // The following methods are agent-specific:
    
   	
    public Mundo getmundo(){
        return mundo;
    }
     public String getposicionArqueologo(){
        return posicionArqueologo;
     }
     public void setposicionArqueologo(String arg){
        posicionArqueologo = arg;
     }
     public String getinicio(){
        return inicio;
     }
     public void setinicio(String arg){
        inicio = arg;
     }
     public String getdestino(){
        return destino;
     }
     public void setdestino(String arg){
        destino = arg;
     }
     public int[][] getdistMinimas(){
        return distMinimas;
     }
     public void setdistMinimas(int[][] arg){
        distMinimas = arg;
     }

	public Collection<String> getVecinos() {
		ArrayList<String> vec = new ArrayList<String>();
		int indice = this.mundo.getNombres().indexOf(posicionArqueologo);
		int dist[][] = this.mundo.getDistancias();
		
		for(int i = 0; i < 11; i++){
			if(dist[indice][i] > 0){
				vec.add(this.mundo.getNombres().get(i));
			}
		}
		return vec;
	}


}
